//using System;
//using System.Collections.Generic;
//using Sok.Munkae.Core;
//using Sok.Munkae.Core.DataInterfaces;

//namespace Sok.Munkae.Data.Sandbox
//{


//    public class ComponentRegistrar
//    {
//        public static void RegisterDataAccessObjects()
//        {
//            IOCContainer.Register(typeof(IDao<User>),typeof(UserDAO));
//            IOCContainer.Register(typeof(IUserRepository),
//                                    typeof(UserRepository));
//        }
//    }

//    public class UserService
//    {
//        private IUserRepository repository =
//            IOCContainer.GetInstance<IUserRepository>();

//    }



//    public class UserDAO
//    {
//    }

//    public class IOCContainer
//    {
//        private static Dictionary<Type, Type> mappings;
//        public static void Register(Type registeredType, Type implmentingType)
//        {
//            mappings[registeredType] = implmentingType;
//        }
        
//        public static T GetInstance<T>()
//        {
//            //some magic:
//            // T= registeredType
//            // get the implementingType from mappings dictionary
//            // create a new object of type ImplementingType, cast as
//            // registeredType, and return it.
//            throw new ItsJustADemoException();
//        }
//    }                




//    public class ItsJustADemoException : Exception
//    {
//    }


//    public class UserRepository :IUserRepository
//    {
//        private IDao<User> dao;
//        public UserRepository(IDao<User> userDao)
//        {
//            dao = userDao; 
//        }
//    // ...


   







//        public User Get(int id)
//        {
//            throw new NotImplementedException();
//        }

//        public IList<User> GetAll()
//        {
//            throw new NotImplementedException();
//        }

//        public User GetByUserName(string userName)
//        {
//            throw new NotImplementedException();
//        }
//    }

//    public interface IDao<T>
//    {
//        T RetrieveQuery(string query);
//    }
//}